Some tips for tDialogWindow users: - to make a modal dialog use ExecDialogWindow as you would use ExecDialog with the standard OWL tDialog object: aDialog:= New(pDialogWindow, Init(@Self, 'MyDialog')); If ExecDialogWindow(aDialog)=Id_Ok Then .... - Do not dispose the dialog after the ExecDialogWindow call, ExecDialogWindow does this for you as ExecDialog does it for tDialog objects! - to make a modeless dialog window use Application^.MakeWindow: Application^.MakeWindow(New(pDialogWindow,Init(@Self, 'MyDialog'))); - you should *not* override GetClassName method for tDialogWindow descendants, instead specify a unique classname in the properties dialog box of Resource Workshop. Using a non-unique classname leads to MDI child windows with non-active colors and other nice effects! - specify style WS_POPUP for your dialogs. Although this style is not allowed for MDI child windows, tDialogWindow converts this window style to WS_CHILD if used under MDI. This makes it easy to use your dialogs as MDI childs and as popup dialogs if needed - if you want to create non-standard MDI child windows e.g. child windows with non-sizeable frames, windows with no system menu etc., you must do the following (see DlgTest.Pas for an example): 1) override the InitClient method like this: Procedure aMDIWindow.InitClientWindow; Begin ClientWnd:= New(pMdiClient, Init(@Self)); With ClientWnd^.Attr do Style:= Style Or MdiS_AllChildStyles End; 2) specify *all* attributes for your child windows in Resource Workshop! MDI now uses no default style. This applies especially to the style WS_VISIBLE! If you do not specify this style your MDI child windows are created invisible and you have to use ShowWindow() to make 'em visible. - if you want scrollbars for your MDI client window modify InitClientWindow like this: Procedure aMDIWindow.InitClientWindow; Begin ClientWnd:= New(pMdiClient, Init(@Self)); With ClientWnd^.Attr do Style:= Style Or ws_VScroll Or ws_HScroll {Or MdiS_AllChildStyles} End; - tDialogWindow automatically and DYNAMICALLY loads BWCC.DLL if class 'BorDlgxxxx' is specified as the dialog class or DlgStyle is set to ForceBor (remember to specify a new classname: 'BorDlg' is not unique!) - tDialogWindow automatically and DYNAMICALLY loads CTL3D.DLL if the bit 'EnableCtl3D' is set in the DlgStyle variable. For example if you want your dialog window in Microsoft CTL3D style, simply make a dialog like this: Application^.MakeWindow(New(pDialogWindow, InitCustom(@Self, 'MyDialog', EnableCtl3D))); Notice that 'MyDialog' may be a BorDlg class dialog resource as well, meaning you may mix BorDlgs and CTL3D style - the DialogWn unit is written for Borland Pascal 7.0 and does not work without modifications together with TPW 1.5. - the DialogWn unit is not tested under Windows 3.0 - if you want to use the DialogWn unit togther with TurboPower's Data Entry Workshop, see included file DEWNOTES.TXT for details on how to modify the DEW files. $Define "DEW" for the DlgTest program to see a demo of DialogWn and DEW. Peter Sawatzki [100031,3002]